home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 12
/
Mac Magazin and MacEasy Magazine CD - Issue 12.iso
/
Sharewarebibliothek
/
Anwendungen
/
Rest
/
Rainbow Demo
/
Appendices
next >
Wrap
Text File
|
1995-07-27
|
13KB
|
453 lines
----------------------------------------------------------------------------
Rainbow - An Atari 400/800/800XL Emulator for the Apple Macintosh
----------------------------------------------------------------------------
Appendices
----------
A - Getting your ROMs/files onto your Mac
-----------------------------------------
This is done in two steps - creating a disk file of the ROM image and then
transferring over to the Mac.
Step One
--------
Creating a DOS file of the OS ROM image is simple. If you have a 400 or 800, the
OS ROM is 10K in size. Run the following program
5 REM CREATE 10K 400/800 ROM FILE - 10240 BYTES
10 OPEN#1,8,0,"D:ROM10K"
20 FOR K=55296 TO 65535 : PUT#1,PEEK(K) : NEXT K
30 CLOSE #1
which saves the ROM onto disk. For XL machines, run this. The ROM is 16K in size.
Only the full shareware version emulates the 800XL.
5 REM CREATE 16K XL OS ROM FILE - 16384 BYTES
10 OPEN#1,8,0,"D:ROM16K"
20 FOR K=49152 TO 53247 : PUT#1,PEEK(K) : NEXT K
30 POKE 54017,PEEK(54017)-128
40 FOR K=20480 TO 22527 : PUT#1,PEEK(K) : NEXT K
50 FOR K=55296 TO 65535 : PUT#1,PEEK(K) : NEXT K
60 CLOSE #1
To create an image of BASIC use
5 REM CREATE 8K BASIC FILE - 8192 BYTES
10 OPEN#1,8,0,"D:BASIC"
20 FOR K=40960 TO 49151 : PUT#1,PEEK(K) : NEXT K
30 CLOSE #1
Step Two
--------
That's the easy bit. This step involves transferring the files over to the Mac.
Luckily the modem port on the Mac is a RS232 port, so you'll need an 850 Interface
Module...
[Atari computer] --> [850 Module] ===== cable =====> [Mac]
and a cable. Don't worry, this cable is very easy to make.
Below is a diagram of the ports, looking INTO THE BACKS of the Mac and
850 unit.
Mac 8 pin mini-modem Atari 850 9 pin D connector
• 8 • 7 • 6 • 5 • 4 • 3 • 2 • 1
• 5 • 4 • 3 • 9 • 8 • 7 • 6
• 2 • 1
You only need to make 2 connections...
Mac modem 850 port (PORT 1)
--------- -----------------
PIN 8 (GND) PIN 5 (GND)
PIN 5 (RECEIVE DATA) PIN 3 (SEND DATA)
Ideally you should make a cable with a 9-pin D connector, 8 pin mini DIN line plug
and some 2 core electrical cable. But you can probably get away with just using
2 pieces of insulated wire (about a metre in length) and pushing the ends
into the sockets.
Now to send a file to the Mac. Type in the following program.
5 REM XFER - TRANSFER A FILE TO MAC
10 POKE 559,0
20 REM SET UP HEX TABLES FIRST
25 DIM A(256),B(256)
30 FOR K=0 TO 255
40 HI=INT(K/16) + 48
50 LO=(K-HI*16) + 48
60 IF HI>57 THEN HI=HI+7
70 IF LO>57 THEN LO=LO+7
80 A(K+1)=HI
90 B(K+1)=LO
100 NEXT K
110 REM
200 REM NOW SEND THE FILE!
210 OPEN #4,4,0,"D:ROM10K" : REM open file to send
220 OPEN #7,8,0,"R1:"
230 XIO 36,#7,14,0,"R1:"
240 FOR K=1 TO 10240 : REM send all the bytes in the file
250 GET#4,BYTE
260 PUT#7,A(BYTE+1)
270 PUT#7,B(BYTE+1)
280 NEXT K
290 CLOSE #7
300 CLOSE #4
310 POKE 559,34
Lines 25 to 100 set up hexadecimal character tables for bytes 0 to 255.
Line 5 switches off the screen which speeds up transfer by 33%. Line 310 turns
it back on.
Lines 220 and 230 set up PORT 1 for output to the Mac at a transfer rate of 9600
bits per second (baud rate). A loop then reads the file from disk a byte at
a time and sends it in hex to the Mac.
Lines 210 and 240 are set up above ready to transfer the 10K OS ROM file.
BUT DON'T RUN THIS YET!
You now need some kind of communications software for your Mac to receive the
data. My favourite is Zterm which is shareware and widely available.
Set Zterm to 9600 baud rate. Make sure the 'capture' window is clean of
all spurious text.
NOW REBOOT YOUR ATARI AND RUN THE TRANSFER PROGRAM.
You should see the bytes displayed in the capture window in hex. The complete
transfer will take some minutes. When finished, select entire text and save
the selection with the name UNHEX.IN and place the file in the same folder as
the UNHEX application.
Finally launch UNHEX. This application reads UNHEX.IN and creates the binary
file UNHEX.OUT, stripping any carriage returns (byte = 13) in UNHEX.IN.
Pay attention to the number of bytes unhexed... it should EXACTLY MATCH THE
NUMBER SENT (see line 240 above). If not, repeat the entire process (quit Zterm
and re-boot your Atari just to be sure).
If the transfer is unreliable too often, try dropping the baud rate to 4800 in
Zterm and change the 14 in line 230 to 13.
If it's the 400/800 OS, rename UNHEX.OUT as OP_SYSTEM. All being well, you
can launch Rainbow and get the blue 'Memo Pad' screen up.
Hooray!
The above technique can be used to transfer ANY file to the Mac. However, it is
slow and better solutions are certainly possible. I couldn't get Zterm to receive
binary files properly... transferring in hex avoids troublesome control
characters but increases the file size by a factor of 2.
The above technique is fine for small files but larger ones can present real
problems because it just takes so darn long, not to mention wear and tear on your
drive and disks. You are encouraged to try out proper comms software, e.g. BobTerm
to speed up the transfer rate. Utilities like DisComm3 compress whole images
into DOS files which may prove useful.
Those with the full shareware version of Rainbow need only transfer the DOS.SYS
and DUP.SYS files across to the Mac, use the IMPORT feature to paste them into
the Bootable_Disk provided, and hey presto, one bootable DOS disk! See Manual
for more details.
There's no reason why you can't transfer from the Mac to your Atari; only one
extra connection is needed, i.e. Mac's PIN 3 to 850's PIN 4. However, it is
VERY slow in BASIC.
You may require a full RS232 'handshaking' set-up (i.e. lines for 'Request
To Send' and 'Clear To Send') if you want to use BobTerm, for example.
Here's a full pinout.
Mac modem 850 port (PORT 1)
--------- -----------------
PIN 8 (GND) PIN 5 (GND)
PIN 5 (RECEIVE DATA) PIN 3 (SEND DATA)
PIN 3 (SEND DATA) PIN 4 (RECEIVE DATA)
PIN 2 (CTS) PIN ?
PIN 1 (RTS & DTR) PIN ? (not sure about these...)
PIN 7 (CD) PIN ?
Please refer to your 850 manual for details BEFORE proceeding.
B - Rainbow technical details
-----------------------------
For those who like to revel in technical specs, here's the list for Rainbow.
Hardware:
• NMOS 6502 processor
• Accepts 400/800 and 800XL OS
• 48K RAM for 400/800 machines; full 64K RAM for 800XL
• NMI and IRQ interrupt emulation
• 8K and 16K cartridge support
• 16K Super Cartridge support
• Low level SIO emulation allows access to virtual disk images
• Supports single and enhanced density images and ATR images
• Disk drives D1: and D2: available
• Import/export files to and from your Mac hard disk
• Full keyboard
Graphics:
• 256 Atari colours
• Complete playfield generation (ANTIC modes 2 to 15)
• Narrow, Normal and Wide playfields
• GTIA support giving 3 extra colour modes
• Colour artefacting in GRAPHICS 8
• Display List Interrupts
• Player/Missile Graphics
• Full Player/Missile/Playfield collision detection
• Player/Missile priorities (mutually exclusive and non-exclusive)
• Fine scrolling
• PAL/NTSC screen option
Others:
• POKEY timers 1, 2 and 4
• Sound with 4 channels of pure tones and improvised noise
• Four joysticks support using keypad
• Four paddles support using mouse
Rainbow is coded entirely in C and developed with Symantec's Think C 6.0.
The PPC version was compiled with Metrowerk's CodeWarrior 5.
C - Why won't this game work???
-------------------------------
Okay, you've tried everything and your favourite game still won't run properly.
Go through the following checklist.
- Try the game with and without BASIC inserted. On the XL, keep the OPTION
key (Shift and num lock on the Mac) pressed to disable BASIC when re-booting.
- Does it need an XL machine?
- Does it need the very old 'A' version of the 400/800 OS? Some software did
do naughty things like jumping in and out of OS routines when they should
have used vectors.
- If you're trying to run a BINARY FILE, then the loader/DOS you use may affect
it. Some games I've tried simply won't run using the L option in Atari
DOS 2.5 but do run successfully on another e.g. SmartDOS. The best loaders
are the tiny ones which take only a second to boot up. Experiment and see
which work best for you.
- Some games may need the 'Every' frame option to work properly or for the
graphics to behave and look right.
- Are you sure your file or disk image is not corrupted?
- Turn 'Cheat Mode' off.
- Have you got the correct joystick/paddle active?
- If the screen seems unstable, try checking the the 'PAL' option under
'TV' menu.
If all this fails, then it's down to the limitations of the emulator. Although
Rainbow is a very good emulator, at the end of the day, it's just that... an
approximation of the real thing.
Some games may include illegal (or undocumented) 6502 machine code instructions
to protect the code against hackers. Since they are undocumented, their
behaviour is not well known but a good attempt has been made to include all of
them in Rainbow, the information coming from a number of sources (with inevitable
contradictions...). This is just another possible reason why some games won't
run properly.
However, stuff which works fine include Star Raiders, Gemstone Warrior, Joust,
Video Easel, Karateka, Jr Pacman, Sea Wolf 2, Zaxxon, Gumball, JaggiLines,
Donkey Kong Jr, Montezuma's Revenge, Pengo, Centipede, Tapper, Defender,
Necromancer, Miner 2049er, Drol, DropZone, F15 Strike Eagle, Electrician,
SmartDOS, Eastern Front, Gauntlet, Kaboom, AtariWriter, Music Composer,
Donkey Kong, Mac/65, Action, World Karate, Pole Position 2, Super Cobra,
Jumpman and many more.
D - The 'Atari computer crash' alert box
----------------------------------------
Now and again, you will encounter this alert box. Although it looks horribly
ominous, it's nothing to get worried about and no damage is done to Rainbow
or your Mac.
It means the CPU has just executed an illegal opcode which is known to freeze
the machine. So rather than let the emulator just sit there and do nothing,
it informs you of this.
The only way out of such a crash is to switch the emulator off and on, i.e.
re-boot.
If you hold the Control key down on the re-boot, the cartridge is removed and
drive#1 turned off. This is useful to get out of a continual crash sequence,
e.g. bad boot disk.
Pressing SYSTEM RESET to get out of a game can often result in a 'crash'
and is nothing to worry about. Pity Rainbow can't recreate some of those
spectacular graphics when a real 8 bit crashes... I used to sit there for hours
engrossed in crashing the machine just to see the pretty colours.
Ahem...
E - Rainbow icons
----------------
Use ResEdit to get your existing files to display the colourful Rainbow icons.
The creator code is 'RBOW' and useful types are 'DSKS', 'DSKE' and 'CART'. Leave
the 'Inited' box unchecked on exit. The required icon should appear immediately on
the Desktop (if it was generic before). Else you may have to re-build the desktop.
There are two extra icons, one for the folder and one for your OS file. If these
appear as generic folder icons, you can get these bcak using ResEdit. Just choose
'Get Info' option and check the custom icon box.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Roll credits...
---------------
Many thanks to Barry Cantin for additional testing, encouragement, advice,
coffee and chicory, hot sauce and just for being one cool guy. Cheers, Barry!
Thanks also to David Firth for help and advice; Bill Kendrick for help with
the icons and testing; Bertrand Le Roy for his kind permission to include
the F.R.E.E. demo.
We wish to state formally that Rainbow has no affiliation with the heavy
metal band also called Rainbow (ex-Deep Purple and who did 'Since you've been gone')
nor any connection whatsoever with a children's TV programme here in
the U.K. under the same name of Rainbow (which featured Geoffrey, Bungle, George
and Zippy, whose mouth was a zip which you could zip up). Or D.H. Lawrence.
Our lawyers have been briefed.
Rainbow (C) Chris Lam 1995.
Made in Birmingham, England.
Bye for now and good luck with Rainbow!